﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//联合类型的声明

union Un
{
	char c;
	int i;
};
int main()
{
	//联合变量的定义

	union Un un = { 0 };
	// 下⾯输出的结果是⼀样的吗？

		printf("%p\n", &(un.i));
	printf("%p\n", &(un.c));
	printf("%p\n", &un);
	return 0;
}



union Un1
{
	char c[5];
	int i;
};
union Un2
{
	short c[7];
	int i;
};
int main()
{
	//下⾯输出的结果是什么？

		printf("%d\n", sizeof(union Un1));
	printf("%d\n", sizeof(union Un2));
	return 0;
}


struct gift_list
{
	int stock_number;//库存量

		double price; //定价

		int item_type;//商品类型


	union{
		struct
		{
			char title[20];//书名

				char author[20];//作者

				int num_pages;//⻚数

		}book;
		struct
		{
			char design[30];//设计

		}mug;
		struct
		{
			char design[30];//设计

				int colors;//颜⾊

				int sizes;//尺⼨

		}shirt;
	}item;
};